package org.myOrg.spetrum.combination;

import java.util.List;

public interface Tuple {

	public abstract String toString(int length);

	public abstract boolean equals(Object tuple);

	public abstract int hashCode();

	public abstract Tuple copy();
	
	public abstract boolean contains(Tuple tuple);

	public abstract void set(int location, int index, int value);
	
	public abstract List<Tuple> getChildTuples();
	/**
	 * @return the paramIndex
	 */
	public abstract int[] getParamIndex();

	/**
	 * @param paramIndex
	 *            the paramIndex to set
	 */
	public abstract void setParamIndex(int[] paramIndex);

	/**
	 * @return the paramValue
	 */
	public abstract int[] getParamValue();

	/**
	 * @param paramValue
	 *            the paramValue to set
	 */
	public abstract void setParamValue(int[] paramValue);

	/**
	 * @param degree
	 *            the degree to set
	 */
	public abstract void setDegree(int degree);

	/**
	 * @return the degree
	 */
	public abstract int getDegree();

}